namespace Digitalmes.Domain.Entities.Mes.Processes;

/// <summary>
/// 工艺参数（暂时未使用）。
/// </summary>
/// <remarks>此工艺标准表关联工序和工步两个级别。</remarks>
[SugarTable("proc_step_param")]
public sealed class ProcStepParam
{
    /// <summary>
    /// 关联的工艺步骤 ID（工序级别）。
    /// </summary>
    public long StepId { get; set; }

    /// <summary>
    /// 关联的工步 ID（工步级别），若不为工步则设置为 0，表示标准适用于整道工序。
    /// </summary>
    public long StepTaskId { get; set; }

    /// <summary>
    /// 工艺参数名称（如温度、行程、压力、拧紧角度、拧紧扭矩等）
    /// </summary>
    [NotNull]
    public string? ParameterName { get; set; }

    /// <summary>
    /// 工艺参数编码
    /// </summary>
    [NotNull]
    public string? ParameterCode { get; set; }

    /// <summary>
    /// 对应设备的信号点位。
    /// </summary>
    [NotNull]
    public string? Symbol { get; set; }

    /// <summary>
    /// 信号点位索引（数组值）。
    /// </summary>
    /// <remarks>若点位为数组，指定数组索引，从 1 开始</remarks>
    public int SymbolIndex { get; set; }

    /// <summary>
    /// 工艺参参数值。
    /// </summary>
    /// <remarks>
    /// True/False 代表检测结果判定，其他值必须为数字类型。
    /// 根据对应数据类型，将文本值转换成对应值。
    /// </remarks>
    [NotNull]
    public string? ParameterValue { get; set; }

    /// <summary>
    /// 工艺参数允许的下限值
    /// </summary>
    public double? MinLimit { get; set; }

    /// <summary>
    /// 工艺参数允许的上限值
    /// </summary>
    public double? MaxLimit { get; set; }

    /// <summary>
    /// 归属（Operation->工序；Workstep->工步）
    /// </summary>
    [NotNull]
    public string? Owner { get; set; }
}
